package com.msh.frame.interfaces;


import java.util.Collection;
import java.util.Set;

public interface ICache<K, V> {

  /**
   *
   */
  V get(K k);

  /**
   *
   */
  void put(K k, V v);

  /**
   *
   */
  void put(K k, V v, long expireSecond);

  /**
   * 获取过期秒数
   * @param k
   * @return
   */
  Long getExpireSecond(K k);

  /**
   *
   */
  boolean hasKey(K k);

  /**
   *
   */
  void remove(K k);

  /**
   *
   */
  void remove(Collection<K> c);

  /**
   *
   */
  void clearPrefix(K k);

  /**
   *
   */
  void clear();
}
